A multimedia network session may include audio, video, image, control messages, and other data types. For example, in a distance learning presentation, an instructor may deliver a video lecture accompanied by slides or whiteboard illustrations. The image of the instructor is delivered over the network by a video medium and the sound by an audio medium. The whiteboard illustrations and slides, for example, may be delivered to viewers as images. Other elements of the lecture, such as an outline or prepared notes, may also be delivered as text. Typically, a server program or an application transmits the data representing the multimedia presentation to one or more client programs or applications running typically on several computers or other devices, enabling students to view the lecture. Each media element typically has its own nature and characteristics and different protocols may be used in transmitting each element of the session over the network. For example in a multimedia session such as the exemplary lecture, the server may control the flow and rate of data transmission or “push” data representing certain media elements of the session to the clients. On the other hand, some of the data may be “pulled” from the server with the client controlling the data rate. The data representing some of the elements of the lecture may be transmitted at fixed rates, while data representing other elements may be transmitted at variable rates.
A client may also request different media elements for different client-side applications, such as a request from a web site providing streaming video and a request from another web site providing web pages. The media elements based on these two requests may be received simultaneously by the client. The bandwidth available at the client, however, is generally limited, and may be based on the type of connection available to the client. A method of allocating available bandwidth to effectively transport the varying media elements is highly desirable.